package com.zenithmind.chat.service;

import com.zenithmind.chat.pojo.entity.AiChat;

/**
 * AI对话权限服务接口
 * 遵循单一职责原则，专门负责权限验证
 */
public interface AiChatPermissionService {
    
    /**
     * 检查用户是否有权限访问对话
     * 
     * @param chat 对话实体
     * @param userId 用户ID
     * @return 是否有权限
     */
    boolean hasPermission(AiChat chat, String userId);
    
    /**
     * 检查用户是否有权限修改对话
     * 
     * @param chat 对话实体
     * @param userId 用户ID
     * @return 是否有权限
     */
    boolean hasModifyPermission(AiChat chat, String userId);
    
    /**
     * 检查用户是否有权限删除对话
     * 
     * @param chat 对话实体
     * @param userId 用户ID
     * @return 是否有权限
     */
    boolean hasDeletePermission(AiChat chat, String userId);
    
    /**
     * 检查权限并抛出异常（如果无权限）
     * 
     * @param chat 对话实体
     * @param userId 用户ID
     * @throws SecurityException 如果无权限
     */
    void checkPermission(AiChat chat, String userId) throws SecurityException;
}
